/**
 * 
 */
package fr.gfi.agraf.vue.bean;

import java.util.ArrayList;
import java.util.Date;
import java.util.List;

/**
 * @author Fw
 * 
 */
public class ActiviteDTO implements Comparable<ActiviteDTO> {

	private Long id;

	private String libelle;

	private String remarque;

	private Date dateDebut;

	private Date dateFin;

	private Date dateCreation;

	private PerimetreDTO perimetre;

	private EtatDTO etat;

	private UtilisateurDTO utilisateur;

	private boolean isTacheLiees;

	private List<TacheDTO> tacheList;

	private List<UtilisateurDTO> listeUtilisateurEnCoursDev;

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Comparable#compareTo(java.lang.Object)
	 */
	public int compareTo(final ActiviteDTO activite) {
		return (int) (this.id - activite.getId());
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#equals(java.lang.Object)
	 */
	@Override
	public boolean equals(final Object obj) {
		if (this == obj) {
			return true;
		}
		if (obj == null || getClass() != obj.getClass()) {
			return false;
		}
		final ActiviteDTO activite = (ActiviteDTO) obj;
		if (!activite.getId().equals(this.getId())) {
			return false;
		}

		return true;
	}

	/*
	 * (non-Javadoc)
	 * 
	 * @see java.lang.Object#hashCode()
	 */
	@Override
	public int hashCode() {
		if (id == null || id == 0) {
			return super.hashCode();
		}
		return (int) (7 * id);
	}

	/**
	 * @return the utilisateur
	 */
	public UtilisateurDTO getUtilisateur() {
		return utilisateur;
	}

	/**
	 * @param utilisateur
	 *            the utilisateur to set
	 */
	public void setUtilisateur(final UtilisateurDTO utilisateur) {
		this.utilisateur = utilisateur;
	}

	/**
	 * @return the id
	 */
	public Long getId() {
		return id;
	}

	/**
	 * @param id
	 *            the id to set
	 */
	public void setId(final Long id) {
		this.id = id;
	}

	/**
	 * @return the libelle
	 */
	public String getLibelle() {
		return libelle;
	}

	/**
	 * @param libelle
	 *            the libelle to set
	 */
	public void setLibelle(final String libelle) {
		this.libelle = libelle;
	}

	/**
	 * @return the remarque
	 */
	public String getRemarque() {
		return remarque;
	}

	/**
	 * @param remarque
	 *            the remarque to set
	 */
	public void setRemarque(final String remarque) {
		this.remarque = remarque;
	}

	/**
	 * @return the dateDebut
	 */
	public Date getDateDebut() {
		return dateDebut;
	}

	/**
	 * @param dateDebut
	 *            the dateDebut to set
	 */
	public void setDateDebut(final Date dateDebut) {
		this.dateDebut = dateDebut;
	}

	/**
	 * @return the dateFin
	 */
	public Date getDateFin() {
		return dateFin;
	}

	/**
	 * @param dateFin
	 *            the dateFin to set
	 */
	public void setDateFin(final Date dateFin) {
		this.dateFin = dateFin;
	}

	/**
	 * @return the dateCreation
	 */
	public Date getDateCreation() {
		return dateCreation;
	}

	/**
	 * @param dateCreation
	 *            the dateCreation to set
	 */
	public void setDateCreation(final Date dateCreation) {
		this.dateCreation = dateCreation;
	}

	/**
	 * @return the perimetre
	 */
	public PerimetreDTO getPerimetre() {
		return perimetre;
	}

	/**
	 * @param perimetre
	 *            the perimetre to set
	 */
	public void setPerimetre(final PerimetreDTO perimetre) {
		this.perimetre = perimetre;
	}

	/**
	 * @return the etat
	 */
	public EtatDTO getEtat() {
		return etat;
	}

	/**
	 * @param etat
	 *            the etat to set
	 */
	public void setEtat(final EtatDTO etat) {
		this.etat = etat;
	}

	/**
	 * @return the isTacheLiees
	 */
	public boolean isTacheLiees() {
		return isTacheLiees;
	}

	/**
	 * @param isTacheLiees
	 *            the isTacheLiees to set
	 */
	public void setTacheLiees(final boolean isTacheLiees) {
		this.isTacheLiees = isTacheLiees;
	}

	/**
	 * @return the tacheList
	 */
	public List<TacheDTO> getTacheList() {
		if (tacheList == null) {
			tacheList = new ArrayList<TacheDTO>();
		}
		return tacheList;
	}

	/**
	 * @param tacheList
	 *            the tacheList to set
	 */
	public void setTacheList(final List<TacheDTO> tacheList) {
		this.tacheList = tacheList;
	}

	/**
	 * @return the listeUtilisateurEnCoursDev
	 */
	public List<UtilisateurDTO> getListeUtilisateurEnCoursDev() {
		return listeUtilisateurEnCoursDev;
	}

	/**
	 * @param listeUtilisateurEnCoursDev
	 *            the listeUtilisateurEnCoursDev to set
	 */
	public void setListeUtilisateurEnCoursDev(final List<UtilisateurDTO> listeUtilisateurEnCoursDev) {
		this.listeUtilisateurEnCoursDev = listeUtilisateurEnCoursDev;
	}

}
